﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Portal.Systems.Render;
using Portal.Core;
using Portal.Systems.Model;
using Portal.Web.Utility;
using Portal.Web.Model;

namespace Portal.Admin.Screen.Render
{
    public class ChangePasswordRenderBll
    {
        public static AjaxOut Draw(string SiteId)
        {
            AjaxOut OAjaxOut = new AjaxOut();
            UserCls OUser = (UserCls)WebSessionUtility.GetCurrentLoginUser();
            string Html =
                "<script language=javascript> \r\n" +
                "    function DoChangePassword() {\r\n" +
                "        SiteId='" + SiteId + "';\r\n" +
                "        AssetCode='" + OUser.AssetCode + "';\r\n" +
                "        LoginName='" + OUser.LoginName + "';\r\n" +
                "        Password= document.getElementById('txtOldPassword').value;\r\n" +
                "        NewPassword = document.getElementById('txtNewPassword').value;\r\n" +
                "        ReNewPassword = document.getElementById('txtReNewPassword').value;\r\n" +
                "        AjaxOut = Portal.Admin.Screen.Render.ChangePasswordRenderBll.ServerSideChangePassword(SiteId, AssetCode,LoginName,Password, NewPassword, ReNewPassword).value;\r\n" +
                "        if (AjaxOut.Error) {\r\n" +
                "            alert(AjaxOut.InfoMessage);\r\n" +
                "            return;\r\n" +
                "        }\r\n" +
                "        alert(AjaxOut.InfoMessage);\r\n" +
                "        window.open(AjaxOut.RetUrl, '_self');\r\n" +
                "    }\r\n" +

                "   function BackHome()\r\n"+
                "   {\r\n"+
                "        window.open('../../folder.aspx?folder=admin', '_self');\r\n" +
                "   }\r\n"+
                "</script>\r\n" +

               "<div class=formChangePassword>\r\n" +
               "    <div class=title>ĐỔI MẬT KHẨU TRUY CẬP</div>\r\n" +
               "    <div class=body>\r\n" +
               "        <div style=\"margin-top:2px;text-align:left;padding:8px;font-size:22px;\">\r\n" +
               "            <div style=\"font-size:16px;margin-top:4px;padding:4px;color:Gray;font-style:italic\">Để thay đổi mật khẩu xin vui lòng nhập chính xác mật khẩu cũ sau đó điền mật khẩu mới và gõ lại mật khẩu mới. Chú ý các phím caplock hoặc tiếng việt trên bàn phím của bạn</div>\r\n" +
               "        </div>\r\n" +
               "        <div class=divInfo>\r\n" +
                "                        <table>\r\n" +
                "                            <tr>\r\n" +
                "                                <td>Mã đơn vị:</td>\r\n" +
                "                                <td>" + OUser.AssetCode + "</td>\r\n" +
                "                            </tr>\r\n" +
                "                            <tr>\r\n" +
                "                                <td>Tài khoản:</td>\r\n" +
                "                                <td>" + OUser.LoginName + "</td>\r\n" +
                "                            </tr>\r\n" +
                "                            <tr>\r\n" +
                "                                <td>Mật khẩu cũ:</td>\r\n" +
                "                                <td><input id=txtOldPassword type=password class=textbox value=\"\"></td>\r\n" +
                "                            </tr>\r\n" +
                "                            <tr>\r\n" +
                "                                <td>Mật khẩu mới:</td>\r\n" +
                "                                <td><input id=txtNewPassword type=password class=textbox value=\"\"></td>\r\n" +
                "                            </tr>\r\n" +
                "                            <tr>\r\n" +
                "                                <td>Gõ lại mật khẩu mới:</td>\r\n" +
                "                                <td><input id=txtReNewPassword type=password class=textbox value=\"\"></td>\r\n" +
                "                            </tr>\r\n" +
                "                            <tr>\r\n" +
                "                                <td></td>\r\n" +
                "                                <td><input type=button class=button value=\"Đổi mật khẩu\" onclick=\"javascript:DoChangePassword();\"><input type=button class=button value=\"Quay lại\" onclick=\"javascript:BackHome();\"></td>\r\n" +
                "                            </tr>\r\n" +
                "                            </tr>\r\n" +
                "                        </table>\r\n" +

              
               "</div>\r\n" +
               "</td>\r\n" +
               "</tr>\r\n" +
               "</table>\r\n";

            OAjaxOut.HtmlContent = Html;
            return OAjaxOut;
        }

        [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]
        public static AjaxOut ServerSideChangePassword(
            string SiteId, 
            string AssetCode, 
            string LoginName, 
            string OldPassword, 
            string NewPassword,
            string ReNewPassword)
        {
            AjaxOut OAjaxOut = new AjaxOut();
            try
            {
                if (string.IsNullOrEmpty(AssetCode)) throw new Exception("Chưa xác định mã trường!");
                if (!OldPassword.Equals(WebSessionUtility.GetCurrentLoginUser().Password))
                {
                    throw new Exception("Mật khẩu cũ nhập không chính xác!");
                }
                SystemBussinessUtility.CreateSystemsBussinessProcess(SiteId).ChangePassword(SiteId, AssetCode, LoginName, NewPassword, ReNewPassword);
                OAjaxOut.InfoMessage = "Đổi mật khẩu truy cập cho tài khoản " + LoginName + " thành công!";
                OAjaxOut.RetUrl = "Home.aspx";
            }
            catch (Exception ex)
            {
                OAjaxOut.Error = true;
                OAjaxOut.InfoMessage = ex.Message.ToString();
            }
            return OAjaxOut;
        }
    }
}
